; 文件名：bootsect.asm
org 0x7c00            ; 引导扇区加载地址

; 初始化段寄存器
xor ax, ax            ; AX = 0
mov ds, ax            ; 数据段寄存器
mov es, ax            ; 附加段寄存器
mov ss, ax            ; 堆栈段寄存器
mov sp, 0x7c00        ; 堆栈指针

; 清屏并设置光标位置
mov ah, 0x00          ; 视频模式设置功能
mov al, 0x03          ; 80x25文本模式
int 0x10              ; 调用BIOS视频服务

; 显示字符串 "Hello, world!"
mov si, msg           ; SI指向字符串地址
mov ah, 0x0e          ; 显示字符功能
.loop:
    lodsb             ; AL = [SI], SI++
    or al, al         ; 判断是否为字符串结束符（0）
    jz .done          ; 如果为0则跳转至.done
    int 0x10          ; 显示字符
    jmp .loop         ; 继续循环
.done:

; 无限循环
jmp $                 ; 跳到当前地址（死循环）

; 数据段
msg db 'Hello, world!', 0  ; 以0结尾的字符串

; 填充引导扇区剩余空间并添加引导签名
times 510-($-$$) db 0      ; 填充0至510字节
dw 0xaa55                  ; 引导扇区签名（0xAA55）

